<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>函数的length属性</title>
</head>
<body>
<script>
    /**
     * 函数作为一种特殊的对象它有着自己的方法  call/apply/bind
     * 有着自己的属性 name/length
     * */


    function foo1(a, b, c) {
        /*函数的length属性记录的是函数定义了多少个参数  形参的个数 可以提供函数名.length来判断函数是带参函数还是无参数函数*/
        console.log(foo1.length)
        /*arguments.length记录的是实际传递多少个参数 实参的个数*/
        console.log(arguments.length)

    }

    foo1(1)


    console.log("---")


    function foo2() {

    }

    // name属性记录函数的名字
    console.log(foo2.name)


    function advance(fn) {
        //如果fn中设置了参数就传参
        if (fn.length) {
            fn(1111)
        } else {
            fn()
        }
    }

    // advance(a =>{
    //     console.log(a)})

    advance(() => {
        console.log(111111)
    })


</script>
</body>
</html>